/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.documentar.DAO;

import br.com.documentar.interfacee.InterfaceDAO;
import br.com.documentar.model.OpcaoDocumentoModel;
import java.sql.SQLException;
import java.util.List;

/**
 *
 * @author Santos
 */
public class OpcaoDocumentoDAO extends AbstractDAO
        implements InterfaceDAO<List<br.com.documentar.model.OpcaoDocumentoModel>, br.com.documentar.model.OpcaoDocumentoModel> {

    @Override
    public boolean setDados(OpcaoDocumentoModel model) {
        String sql = null;
        ConnectDataBase();
        switch (model.getActionScript()) {

            case "I":
                sql = "INSERT INTO \n"
                        + "  `tdoc_opcao`\n"
                        + "(\n"
                        //+ "  `TDOC_CODIGO_PK`,\n"
                        + "  `TDOC_DOCUMENTO_FK`,\n"
                        + "  `TDOC_VALOR`,\n"
                        + "  `TDOC_COMPORTAMENTO`,\n"
                        + "  `TDOC_ANEXO`) \n"
                        + "VALUE (\n"
                        //+ "  :TDOC_CODIGO_PK,\n"
                        + "  " + model.getDocumento().getCodigo() + ",\n"
                        + "  '" + model.getValor() + "',\n"
                        + "  '" + model.getComportamento() + "',\n"
                        + "  '" + model.getAnexo() + "')";
                break;
            case "U":
                sql = "UPDATE \n"
                        + "  `tdoc_opcao`  \n"
                        + "SET \n"
                        + "  `TDOC_DOCUMENTO_FK` = " + model.getDocumento().getCodigo() + ",\n"
                        + "  `TDOC_VALOR` = '" + model.getValor() + "',\n"
                        + "  `TDOC_COMPORTAMENTO` = '" + model.getComportamento() + "',\n"
                        + "  `TDOC_ANEXO` = '" + model.getAnexo() + "' \n"
                        + "WHERE \n"
                        + "  `TDOC_CODIGO_PK` = " + model.getCodigo() + "";
                break;
            case "D":
                sql = "DELETE FROM \n"
                        + "  `tdoc_opcao` \n"
                        + "WHERE \n"
                        + "  `TDOC_CODIGO_PK` = " + model.getCodigo() + "";
                break;
        }
        return InsertUpdateDelete(sql, model.getNomeTela());
    }

    @Override
    public List<OpcaoDocumentoModel> getDados(OpcaoDocumentoModel model) {
        model.setResultSet(null);
        model.getListaDocumentar().clear();
        String sql = "SELECT \n"
                + "  `opcao`.`TDOC_CODIGO_PK`,\n"
                + "  `opcao`.`TDOC_DOCUMENTO_FK`,\n"
                + "  `opcao`.`TDOC_VALOR`,\n"
                + "  `opcao`.`TDOC_COMPORTAMENTO`,\n"
                + "  `opcao`.`TDOC_ANEXO`\n"
                + "FROM \n"
                + "  `tdoc_opcao` `opcao`";
        try {
            ConnectDataBase();
            switch (model.getActionScript()) {
                case "porDocumento":
                    model.setResultSet(Select(sql + " WHERE `opcao`.`TDOC_DOCUMENTO_FK` = " + model.getDocumento().getCodigo() + "", model.getNomeTela()));
                    break;
            }
            while (model.getResultSet().next()) {
                br.com.documentar.model.OpcaoDocumentoModel p = new br.com.documentar.model.OpcaoDocumentoModel();
                p.setCodigo(rs.getInt("TDOC_CODIGO_PK"));
                p.getDocumento().setCodigo(rs.getInt("TDOC_DOCUMENTO_FK"));
                p.setValor(rs.getString("TDOC_VALOR"));
                p.setComportamento(rs.getString("TDOC_COMPORTAMENTO"));
                p.setAnexo(rs.getString("TDOC_ANEXO"));
                model.getListaDocumentar().add(p);
            }
        } catch (SQLException ex) {
            ex.getStackTrace();
        } finally {
            Desconectar(model.getNomeTela());
        }
        return model.getListaDocumentar();
    }
}
